package com.example.tired1.recyclerviewtest_xx14120200131;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

/**
 * Created by tired1 on 2017/4/13.
 */

public class Myadapter extends RecyclerView.Adapter<Myadapter.ViewHolder> {
    List<ArticleBean> list;
    Context context;

    Myadapter(Context context,List<ArticleBean> list){//构造方法，给属性赋值
        this.context=context;
        this.list=list;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //该方法主要生成为每个item创建出一个view，但是他返回的值是viewholder
        //该方法吧view直接封装在viewholder里，然后我面面相的是viewholder这个实例
        View view= LayoutInflater.from(context).inflate(R.layout.item,parent,false);
        //inflate方法中的参数：第一个参数是要加载的item的布局，
        //第二个参数是给布局外部再套一层父布局
        //三是通常设置为FALSE
        return new ViewHolder(view);

    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        ArticleBean articleBean=list.get(position);//显示list中的第position个数据，
        //所以将该数据从list中获取过来
        if (articleBean==null) return;//如果有错误直接返回
        //如果没有错误，就应该把这个数据显示到holder所对应的view里
        holder.imageView.setImageResource(articleBean.getImgid());
        holder.textView_title.setText(articleBean.getTitle());
        holder.textView_time.setText(articleBean.getTime());
        holder.textView_description.setText(articleBean.getDescription());
        holder.button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                list.remove(position);
                notifyDataSetChanged();
                Toast.makeText(context,"delete sucess", Toast.LENGTH_SHORT).show();
            }
        });
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text=list.get(position).getTitle();
                Toast.makeText(context,text, Toast.LENGTH_SHORT).show();
            }
        });

    }

    @Override
    public int getItemCount() {//list里一共有多少个item数据，那么返回就是这个数目

        return list.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder{
        //viewholder顾名思义，就是view管理者或持有者或承载者，用于对item布局的承载
        //所以在item布局中，添加的控件都应该在这里声明和绑定
        ImageView imageView;
        TextView textView_title; TextView textView_time; TextView textView_description;
        Button button;

        public ViewHolder(View itemView) {
            super(itemView);
            imageView=(ImageView)itemView.findViewById(R.id.imageView);
            textView_description=(TextView)itemView.findViewById(R.id.textView2);
            textView_time=(TextView)itemView.findViewById(R.id.textView3);
            textView_title=(TextView)itemView.findViewById(R.id.textView);
            button=(Button)itemView.findViewById(R.id.button);
        }
    }
}
